To conserve power, it is desirable for the nodes of a wireless network to cycle between sleeping and waking phases. During the sleeping phase, a node shuts down its communication and other major functions and draws very little current, thereby saving power. During the waking phase, a node powers its transceiver and exchanges messages with other nodes in the network. One problem faced in such networks is how to maintain agreement, or to synchronize, the clocks of different network nodes so that they wake at approximately the same time.
In the past, networks have addressed the problem of synchronization is a number of ways. Some networks have relied, directly or indirectly, on an external time reference such as the internet. The internet ultimately uses the Internet Time Service (ITS), provided by NIST and USNO, where servers respond to requests using the Network Time Protocol (NTP) by supplying time of day responses with accuracy and precision traceable to centralized government standards. The problem with this approach is that it depends on an authority, standard, or reference which is external and therefore may be unavailable to a wireless network due to physical isolation or interference.
Other networks have relied on a local time reference authority, such as a dedicated node. The dedicated node periodically generates a synchronizing message to be used as a time reference by all the other nodes in the network. The problem with this approach is that it depends on a dedicated node which, by design, creates the potential for a single point of failure. If the dedicated node were to fail, the entire network would lose synchronization. Eventually, the loss of synchronization due to accumulated clock drift would cause the nodes to lose communication with each other, causing the network to fail.
What is needed is a system and method for synchronizing nodes that addresses these issues and others that will become apparent while reading this specification.